home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / mips / include / asm / smp-ops.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.4 KB  |  58 lines

  1. /*
  2.  * This file is subject to the terms and conditions of the GNU General
  3.  * Public License.  See the file "COPYING" in the main directory of this
  4.  * archive for more details.
  5.  *
  6.  * Copyright (C) 2000 - 2001 by Kanoj Sarcar (kanoj@sgi.com)
  7.  * Copyright (C) 2000 - 2001 by Silicon Graphics, Inc.
  8.  * Copyright (C) 2000, 2001, 2002 Ralf Baechle
  9.  * Copyright (C) 2000, 2001 Broadcom Corporation
  10.  */
  11. #ifndef __ASM_SMP_OPS_H
  12. #define __ASM_SMP_OPS_H
  13.  
  14. #ifdef CONFIG_SMP
  15.  
  16. #include <linux/cpumask.h>
  17.  
  18. struct plat_smp_ops {
  19.     void (*send_ipi_single)(int cpu, unsigned int action);
  20.     void (*send_ipi_mask)(cpumask_t mask, unsigned int action);
  21.     void (*init_secondary)(void);
  22.     void (*smp_finish)(void);
  23.     void (*cpus_done)(void);
  24.     void (*boot_secondary)(int cpu, struct task_struct *idle);
  25.     void (*smp_setup)(void);
  26.     void (*prepare_cpus)(unsigned int max_cpus);
  27. };
  28.  
  29. extern void register_smp_ops(struct plat_smp_ops *ops);
  30.  
  31. static inline void plat_smp_setup(void)
  32. {
  33.     extern struct plat_smp_ops *mp_ops;    /* private */
  34.  
  35.     mp_ops->smp_setup();
  36. }
  37.  
  38. #else /* !CONFIG_SMP */
  39.  
  40. struct plat_smp_ops;
  41.  
  42. static inline void plat_smp_setup(void)
  43. {
  44.     /* UP, nothing to do ...  */
  45. }
  46.  
  47. static inline void register_smp_ops(struct plat_smp_ops *ops)
  48. {
  49. }
  50.  
  51. #endif /* !CONFIG_SMP */
  52.  
  53. extern struct plat_smp_ops up_smp_ops;
  54. extern struct plat_smp_ops cmp_smp_ops;
  55. extern struct plat_smp_ops vsmp_smp_ops;
  56.  
  57. #endif /* __ASM_SMP_OPS_H */
  58.